6669d2f78ffe878b8cd28b7bd2f641a87949bbc0,src/com/mxgraph/layout/hierarchical/stage/mxCoordinateAssignment.java,mxCoordinateAssignment,setEdgePosition,#mxGraphAbstractHierarchyCell#,1489
Before Change
if (jettys != null)
{
int arrayOffset = edge.isReversed() ? 2 : 0;
double y = edge.isReversed() ? rankTopY[minRank] : rankBottomY[maxRank];
double jetty = jettys[parallelEdgeCount * 4 + 1 + arrayOffset];
if (edge.isReversed())
After Change
*/
protected void setEdgePosition(mxGraphAbstractHierarchyCell cell)
{
mxGraphHierarchyEdge edge = (mxGraphHierarchyEdge) cell;
// For parallel edges we need to separate out the points a
// little
double offsetX = 0.0;
// Only set the edge control points once
if (edge.temp[0] != 101207)
{
int maxRank = edge.maxRank;
int minRank = edge.minRank;
if (maxRank == minRank)
{
maxRank = edge.source.maxRank;
minRank = edge.target.minRank;
}
Iterator<Object> parallelEdges = edge.edges.iterator();
int parallelEdgeCount = 0;
double[] jettys = jettyPositions.get(edge);
Object source = edge.source.cell;
while (parallelEdges.hasNext())
{
Object realEdge = parallelEdges.next();
Object realSource = layout.getGraph().getView().getVisibleTerminal(realEdge, true);
List<mxPoint> newPoints = new ArrayList<mxPoint>(edge.x.length);
// Single length reversed edges end up with the jettys in the wrong
// places. Since single length edges only have jettys, not segment
// control points, we just say the edge isn't reversed in this section
boolean reversed = edge.isReversed();
if (realSource != source)
{